declare type TPos2 = {
    x?: number;
    y?: number;
};

declare type Property = {
    key: string;
    type: string;
    value: string;
    boolValue?: boolean;
    int32Value?: number;
};

declare type TAdvancedPoint = {
    className: string;
    instanceName: string;
    pos: TPos2;
    property: Property[];
    ignoreDir?: boolean;
};


declare type TAdvancedCurve = {
    className: string;
    instanceName: string;
    startPos: {
        instanceName: string;
        pos: TPos2;
    };
    endPos: {
        instanceName: string;
        pos: TPos2;
    };
    controlPos1?: TPos2;
    controlPos2?: TPos2;
    property: Property[];
};

declare type TMapHeader = {
    mapName: string;
    mapType: string;
    maxPos: TPos2;
    minPos: TPos2;
    resolution: number;
    version: string;
};


declare type TMap = {
    header: TMapHeader;
    normalPosList: TPos2[];
    advancedPointList: TAdvancedPoint[];
    advancedCurveList: TAdvancedCurve[];
};


